package com.earl.common.exception;

import com.earl.common.enums.Lang;
import com.earl.common.util.UserContextHolder;
import com.fasterxml.jackson.annotation.JsonIgnore;

public interface ErrorType {
    /**
     * 返回code
     *
     * @return
     */
    String getCode();

    /**
     * 错误类型描述信息(中文)
     *
     * @return
     */
    @JsonIgnore
    String getCnMessage();

    /**
     * 错误类型描述信息(英文)
     *
     * @return
     */
    @JsonIgnore
    String getEnMessage();

    /**
     * 返回mesg
     *
     * @return
     */
    default String getMessage() {
        try {
            UserContextHolder instance = UserContextHolder.getInstance();
            String language = instance.getLang();
            if (Lang.zh.name().equals(language)) {
                return getCnMessage();
            } else if (Lang.en.name().equals(language)) {
                return getEnMessage();
            }
        } catch (Exception e) {

        }
        return getCnMessage();
    }
}
